package com.hxzy.exception;

import com.hxzy.common.domain.AjaxResult;
import lombok.extern.log4j.Log4j2;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.support.DefaultMessageSourceResolvable;
import org.springframework.validation.BindException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * springmvc的全局异常处理类说明 aop思想
 *
 * @author admin
 * @date 2021-09-01
 */
@Slf4j
@RestControllerAdvice
public class WebMvcGlobalExceptionAdvice {


    /**
     * hibernate-validate验证框架post请求的错误处理
     * @return
     */
    @ExceptionHandler(value = BindException.class)
    public AjaxResult  hibernate_validate_post_error(BindException e){
        log.error(e.getMessage(), e);
        String message = e.getAllErrors().get(0).getDefaultMessage();
        return AjaxResult.error(message);
    }




    /**
     * hibernate-validate验证框架get请求的错误处理
     * @return
     */
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public AjaxResult  hibernate_validate_get_error(MethodArgumentNotValidException  e){
        log.error(e.getMessage(), e);
        String message = e.getAllErrors().get(0).getDefaultMessage();
        return AjaxResult.error(message);
    }



}
